9. ์Šคํƒ 2 (๋ฐฐ์—ด, ๋™์ ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„)

7/23/2025

์Šคํƒ์˜ ๊ตฌํ˜„

  • ๋ฐฐ์—ด
  • ๋™์  ๋ฐฐ์—ด
  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

๋ฐฐ์—ด๋กœ ๊ตฌํ˜„

์ •์  ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , ๋ณด์กฐ ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
๋ณด์กฐ ๋ฐฐ์—ด์—๋Š” top์˜ ์ธ๋ฑ์Šค, ๋ฐฐ์—ด์˜ ์šฉ๋Ÿ‰, ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํฌ์ธํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค.

์žฅ์  : ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํ•ญ์ƒ O(1)์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ top์— ์žˆ๋Š”๊ฒƒ์—๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ˆ๊นŒ.
๋‹จ์  : ๋ฐฐ์—ด์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด์•ผ๋œ๋‹ค๋Š” ๊ฒƒ. ๊ทธ๋ž˜์„œ ์Šคํƒ์ด ๋‹ค ์ฐจ๋ฉด ๋” ์ด์ƒ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.

๋™์  ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„

์ผ๋ฐ˜ ๋ฐฐ์—ด์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ

  1. ์Šคํƒ์ด ๊ฐ€๋“ ์ฐฐ ๋•Œ๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด?
    ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆด๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๋ณต์‚ฌํ•ด์„œ ๋„ฃ์–ด์ฃผ๊ณ  ํ•˜๋Š” ์ด ๊ณผ์ •๋“ค์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆผ.
    O(n2)์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

1+2+3+4+5=15 ์ธ๋ฐ?
15 ๋Š” 5(5+1)/2 ์™€ ๊ฐ™๋‹ค. 1+2+3+4+...+n = n(n+1)/2.
n2๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์—์„œ๋Š” ๊ฐ€์žฅ ํฐ ์ฐจ์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•ญ์„ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ทœ์น™์— ๋”ฐ๋ผ O(n2).

  1. ๋‘ ๋ฐฐ ํ™•์žฅ
    ๋ฐ˜๋ณต์ด ๋งค ๋ฒˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 1๋ฒˆ ๋ฐฉ๋ฒ•๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค.
    O(n)์˜ ๋ณต์žก๋„.

์ผ๋‹จ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ 2๋ฐฐ๋กœ ๋Š˜๋ฆฌ๋Š” ํšŸ์ˆ˜๋Š” log2โ€‹n๋ฒˆ ์ผ์–ด๋‚œ๋‹ค.
n=16์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด 4๋ฒˆ. 1+2+4+8 ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ log2โ€‹n์˜ ๊ฐ’์„ k๋ผ๊ณ  ํ•˜๋ฉด 20+21+.....+2kโˆ’1 ๋ฒˆ ๋งŒํผ ๋ณต์‚ฌ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.
๊ทธ๋ฆฌ๊ณ  2์˜ 0์Šน๋ถ€ํ„ฐ k-1์Šน๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฒƒ์€ 2nโˆ’1๊ณผ ๊ฐ™๋‹ค(๊ณ„์‚ฐํ•ด๋ณด๋ฉด).
์Šคํƒ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ๋„ฃ์„๋•Œ ์‚ฝ์ž…ํ•˜๋Š” ํšŸ์ˆ˜ + ๋ณต์‚ฌํ•˜๋Š” ํšŸ์ˆ˜ ๋ผ๊ณ  ๋ณด๋ฉด ๋ณต์‚ฌํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ฐพ์•˜์œผ๋‹ˆ ์‚ฝ์ž…ํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด์ž.
๊ฐ„๋‹จํžˆ n๊ฐœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด 1๋ฒˆ์”ฉ nํšŒ ์ž…๋ ฅํ•˜๋‹ˆ๊นŒ n๋ฒˆ.
๋ณต์‚ฌ ํšŸ์ˆ˜(2n-1) + ์‚ฝ์ž… ํšŸ์ˆ˜(n) = 3n-1
๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ์ƒ์ˆ˜๋“ค์€ ์ œ๊ฑฐํ•˜๋‹ˆ๊นŒ O(n)์˜ ๋ณต์žก๋„๊ฐ€ ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ amortized ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(1)๋ผ๊ณ  ํ•œ๋‹ค.

amortized๋ž€?
์‚ฌ์ „์—๋Š” '๋ถ„ํ•  ์ƒํ™˜'์ด๋ผ๋Š”๋ฐ, ๋Œ€๋žต ํ‰๊ท ์ ์ธ ๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๋ฉด n์ด ์•„๋‹ˆ๋ผ 1์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๊ฒƒ. (n/n = 1)